package cn.edu.bzu.ie.sf.mealsmisweb.service;

import cn.edu.bzu.ie.sf.mealsmisweb.entity.Userinfo;

import java.util.List;

/**
 * @version v1.0.0
 * @Package : cn.edu.bzu.ie.sf.mealsmisweb.service
 * @Description : 用户业务操作接口
 * @Create on : 2021/8/7 20:01
 * @author: Feng Song 宋锋
 **/
public interface UserinfoService {
    /**
     * 获取所有的用户信息，用于支队管理员管理所有的用户信息
     * @return 所有的用户信息列表
     */
    List<Userinfo> getAllUserList();

    /**
     * 获取某个大队下的所有的用户信息，用于大队管理员管理所有的用户信息
     * @param depid 大队id
     * @return 大队中的用户信息列表
     */
    List<Userinfo> getAllUserListByDepid(int depid);

    /**
     * 获取某个用户信息，用于密码的编辑，但是在android中可以直接从adapter中传值到修改界面
     * @param id 用户的id
     * @return Userinfo用户信息实例
     */
    Userinfo getUserinfoById(int id);

    /**
     * 根据用户名和用户密码检查用户信息，用于用户登录
     * @param uname 用户名
     * @param upass 用户密码
     * @return Userinfo 实例
     */
    Userinfo getUserinfoByUnameAndUpass(String uname, String upass);

    /**
     * 通过用户名、电话、邮箱查询用户信息
     * @param uname 用户名
     * @param phone 密保手机号
     * @param email 密保邮箱
     * @return Userinfo 实例
     */
    Userinfo getUserinfoByUnamePhoneEmail(String uname, String phone, String email);

    /**
     * 检查用户名的数量，用于检查用户名是否已经被使用了
     * @param uname 用户名
     * @return int 数量，0未被使用，>0已经使用了
     */
    int chkUnameExist(String uname);

    /**
     * 添加用户信息
     * @param item 要添加的用户信息
     * @return int 影响的行数
     */
    int addUserinfo(Userinfo item);

    /**
     * 修改用户信息
     * @param item 要修改的用户信息
     * @return int 影响的行数
     */
    int editUserinfo(Userinfo item);

    /**
     * 删除用户信息
     * @param id 要删除用户的id
     * @return int 影响的行数
     */
    int delUserinfo(int id);
}
